/*
  Copyright (c) 2014 D. Niklaus.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the GNU Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

/*
 * UptimeInfo.cpp
 *
 *  Created on: 01.10.2013
 *      Author: niklausd
 */

#include "UptimeInfo.h"

#ifdef ARDUINO
#include "Arduino.h"

unsigned long UptimeInfo::tMillis()
{
  return millis();
}

#else
#include <sys/time.h>

/**
 * @see http://stackoverflow.com/a/1952423
 */
unsigned long UptimeInfo::tMillis()
{
  struct timeval tp;
  gettimeofday(&tp, 0);
  long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000;
  return ms;
}

#endif
